class Solution:
    def get_all_subarrays(self, arr):
        subarrays = []
        n = len(arr)

        # 遍历数组中的每个元素作为子数组的起始点
        for i in range(n):
            # 对于每个起始点，遍历数组中的剩余元素作为子数组的结束点
            for j in range(i, n):
                # 添加从索引i到索引j（包含）的子数组到结果列表中
                subarrays.append(arr[i:j + 1])

        return subarrays

    def minimumSubarrayLength(self, nums, k):
        all_subarrays = self.get_all_subarrays(nums)
        the_smallest_lengths = []
        for subarr in all_subarrays:
            res = 0
            for item in subarr:
                res = res | item
            if res >= k:
                the_smallest_lengths.append(len(subarr))
        if len(the_smallest_lengths) != 0:
            return min(the_smallest_lengths)
        else:
            return -1
